#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<string.h>
#include<math.h>

//int my_strlen(char* s)
//{
//	int i = 0;
//	while (*s++)
//	{
//		i++;
//	}
//	return i;
//}

//char* my_strcpy(char* a, char* b)
//{
//
//	char* c = a;
//	while (*b)
//	{
//		*c = *b++;
//		c++;
//	}
//	*c = '\0';
//	return a;
//}

//int my_strcmp(const char* a, const char* b)
//{
//	while (*a && *b)
//	{
//		if (*a - *b > 0)
//		{
//			return 1;
//		}
//		else if (*a - *b < 0)
//		{
//			return -1;
//		}
//		else
//		{
//			a++;
//			b++;
//		}
//	}
//	if (*a == 0 && *b == 0)
//	{
//		return 0;
//	}
//	else if (*a == 0)
//	{
//		return -1;
//	}
//	else
//	{
//		return 1;
//	}
//}

//char* my_strcat(char* a, char* b)
//{
//	char* c = a;
//	while (*a)
//	{
//		a++;
//	}
//	while (*b)
//	{
//		*a++ = *b++;
//	}
//	*a = *b;
//	return c;
//}

//char* my_strstr(char* a, char* b)
//{
//	int lena = strlen(a);
//	int lenb = strlen(b);
//	if (lena < lenb)
//	{
//		return NULL;
//	}
//	int i = 0;
//	for (i = 0; i <= lena - lenb; i++)
//	{
//		char* c = a;
//		char* d = b;
//		while (*d)
//		{
//			if (*(c + i) != *d)
//			{
//				break;
//			}
//			else
//			{
//				c++;
//				d++;
//			}
//		}
//		if (*d == '\0')
//		{
//			return a + i;
//		}
//	}
//	return NULL;
//}
//
//int main()
//{
//	char arr1[20] = "abcabb";
//	char arr2[] = "abc";
//	char* p = NULL;
//	if ((p=my_strstr(arr1, arr2)) != NULL)
//	{
//		printf("%c\n", *p);
//	}
//	else
//	{
//		printf("NO\n");
//	}
//	return 0;
//}

//char* my_memcpy(char* a, char* b, int sz)
//{
//	char* c = a;
//	int i = 0;
//	while (i < sz)
//	{
//		*a++ = *b++;
//		i++;
//	}
//	return c;
//}
//
//
//int main()
//{
//	char arr1[] = "adavsfbd";
//	char arr2[] = "********";
//	my_memcpy(arr1, arr2, 3);
//	printf("%s\n", arr1);
//	return 0;
//}

//#pragma pack(8)
//typedef struct 
//{
//	int a;
//	char b;
//	short c;
//	short d;
//}AA_t;
//
//int main()
//{
//	printf("%d", sizeof(AA_t));
//	return 0;
//}

//int cmp(void* a, void* b)
//{
//	return *(int*)a - *(int*)b;
//}
//
//int main()
//{
//	int arr[] = { 1,1,2,3,4,5,5,4,3,2,8,6,8,6,7,9 };
//	int arr1[2] = { 0 };
//	int sz = sizeof(arr) / sizeof(arr[0]);
//	qsort(arr, sz, sizeof(int), cmp);
//	int flag = 0;
//	if (arr[0] != arr[1])
//	{
//		arr1[0] = arr[0];
//		flag++;
//	}
//	if (arr[sz - 1] != arr[sz - 2])
//	{
//		if (flag == 1)
//		{
//			arr1[1] = arr[sz - 1];
//		}
//		else
//		{
//			arr1[0] = arr[sz - 1];
//		}
//		flag++;
//	}
//	if (flag == 2)
//	{
//		printf("%d %d\n", arr1[0], arr1[1]);
//		return 0;
//	}
//	else
//	{
//		int i = 0;
//		for (i = 1; i < sz - 1; i++)
//		{
//			if (arr[i] != arr[i - 1] && arr[i] != arr[i + 1])
//			{
//				arr1[1] = arr[i];
//			}
//		}
//	}
//	printf("%d %d\n", arr1[0], arr1[1]);
//	return 0;
//}

//char* my_strncpy(char* a, char* b, int sz)
//{
//	char* c = a;
//	int i = 0;
//	while (i < sz && *b)
//	{
//		*c++ = *b++;
//		i++;
//	}
//	if (i != sz)
//	{
//		while (i < sz)
//		{
//			*c++ = '\0';
//			i++;
//		}
//	}
//	return a;
//}
//
//int main()
//{
//	char arr1[] = "abdsfgddf";
//	char arr2[] = "adsa";
//	my_strncpy(arr1, arr2, 4);
//	printf("%s\n", arr1);
//	return 0;
//}

//char* strncat(char* a, char* b, int sz)
//{
//	char* c = a;
//	while (*a)
//	{
//		a++;
//	}
//	int i = 0;
//	while (*b)
//	{
//		*a++ = *b++;
//		i++;
//		if (i == sz)
//		{
//			break;
//		}
//	}
//	return c;
//}
//
//int main()
//{
//	char arr1[20] = "asedfd";
//	char arr2[] = "dfsafcs";
//	strncat(arr1, arr2, 10);
//	printf("%s\n", arr1);
//	return 0;
//}

int my_atoi(const char* s)
{
	int len = strlen(s);
	int sum = 0;
	int i = 0;
	for (i = 0; i < len; i++)
	{
		sum += (*(s + i) - '0') * pow(10, (len - 1 - i));
	}
	return sum;
}

int main()
{
	char arr1[] = "12345";
	int ret = my_atoi(arr1);
	printf("%d\n", ret);
	return 0;
}